package com.dz.lm.service.useragent;

import com.dz.lm.common.dto.PageDto;
import com.dz.lm.common.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**产品代理服务层
 * @version 1.8;
 * @author: LDY;
 * @Description;
 * @Date: Created in 2020/3/7 20:35;
 */
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

public interface UserAgentService {
    /**
     * 添加代理
     * @param userId 代理人
     * @param productId 代理产品
     * @param isLunch 是否立即发布
     * @param isReview 是否判断需要审核
     * @param template 审核数据
     * @param  urls 审核图片
     * @param returnPoint 返点
     * @param agentSale 代理折扣
     * @param levelNum 代理级别
     * @return
     * @throws ServiceException
     */
    Map add(int userId, int productId, boolean isLunch, String platform , boolean isReview , String template , String urls ,double returnPoint , double agentSale ,String levelNum)throws ServiceException;
    /**
     * 取消代理
     * @param agentId
     * @param uid 登录人
     * @param userId 代理人id
     * @return
     * @throws ServiceException
     */
    int cancelAgent(int uid,int userId,int agentId) throws ServiceException;

    /**
     * 查询代理分页
     * @param pageNum
     * @param rows
     * @param supUserId 受理人id
     * @param supProductId 受理产品
     * @param staus 1正常代理 2取消代理
     * @return
     * @throws ServiceException
     */
    PageDto query(int pageNum,int rows,int supUserId,int supProductId,int staus)throws ServiceException;

    /**
     * 查询数量
     * @param supUserId 受理人id
     * @param subUserId 代理人
     * @param supProudctId 受理产品
     * @param status 1正常代理 2取消代理
     * @return
     * @throws ServiceException
     */
    int queryCount(int supUserId,int subUserId,int supProudctId,int status) throws ServiceException;

    /**
     * 神审批代理
     * @param subUid 代理人
     * @param supUid 受理人
     * @param status
     * @return
     * @throws ServiceException
     */
    int reviewAgent( int subUid, int supUid , int status) throws ServiceException;

}
